H

您所在的位置:网站首页 三星2440 仿真器 H

H

2023-12-11 14:04| 来源: 网络整理| 查看: 265

H-JTAG是H-JTAG团队开发的一款自主原创的ARM仿真套件, H-JTAG开发套件主要包括了: H-JTAG SERVER 调试软件, H-FLASHER 烧写软件,及高速H-JTAG USB 仿真器。 其支持各种ARM处理器: ARM7, ARM9, ARM11, XSCALE (包括最新的PXA300系列), CORTEX-M3。无缝连接各种主流IDE:ADS, SDT, IAR, KEIL, RVDS。支持各种WINDOWS平台 NT/2000/XP/VISTA。 本文就如何利用H-JTAG把程序烧写到友善之臂mini2440开发板进行详细的说明。作为友善之臂的《mini2440使用说明书》的一种补充和修正。 2 关于Nand flash 和nor flash S3C2440支持两种方式的启动:Nor Flash启动和Nand Flash启动。Nor Flash和Nand Flash都是非易失性存储器,Nor Flash的特点是芯片内执行,程序可以直接在其中运行,而不必将程序读取到RAM中运行。 Nor Flash虽然具有这个优点,但是它的性价比远低于Nand Flash,因而很多系统采用Nand Flash启动。Nand Flash的特点是采用非线性存储模式,程序无法在其中运行,它只能作为程序或数据的存储载体,存储在其中的程序只能先拷贝到RAM中才能运行。 从Nor Flash启动时,与nGCS0相连的Nor Flash就被映射到nGCS0片选的空间,其地址被映射为0x00000000;从Nand Flash启动时,S3C2440芯片内部自带的一块容量为4K的被称为“Steppingstone”(“起步阶石”)的BootSRAM被映射到nGCS0片选的空间,其地址被映射为0x00000000。当系统上电或复位时,程序会从0地址处开始执行,因此我们编写的启动代码要确保存储在0地址处。 当启动方式为Nor Flash启动时,没有额外需要考虑的问题,因为这种情况下程序在系统启动前就存储在Nor Flash中,我们只要保证将启动代码保存在Nor Flash开始的位置即可,系统上电或复位时,0地址处的启动代码就会被执行。 在启动方式为Nand Flash启动的情况下,系统启动前所有的程序存储在Nand Flash中,系统的启动过程稍微有点复杂:系统上电或复位时,0地址处为S3C2440内部自带的BootSRAM,启动前里面没有任何存储内容,启动后S3C2440先通过硬件机制将Nand Flash前4K的内容拷贝至其中,然后再运行里面的程序(从0地址处)。 这种情况下我们需要保证将启动代码保存在Nand Flash开始的位置,并且启动代码的大小要小于4K。如果系统的所有程序在编译链接后的大小小于4K,那在系统的启动代码中无需考虑将程序从Nand Flash搬运到SDRAM这个问题,因为所有的程序在启动时即全部由Nand Flash拷贝至BootSRAM,程序在BootSRAM中运行即可;如果系统的所有程序在编译连接后的大小大于4K,那在系统的启动代码中需要包含一段将系统的全部程序从Nand Flash搬运到SDRAM的代码,因为系统启动时只将Nand Flash的前4K拷贝到BootSRAM中,还有部分程序保存在Nand Flash中, Nand Flash中是无法运行程序的,需要将所有程序拷贝至SDRAM并在其中运行,所以在系统的启动代码中要包含这段有关程序拷贝的代码,并在所有程序拷贝完成后使程序跳转到SDRAM中运行。 也就是说在启动方式为Nand Flash启动的情况下,因为Nand Flash的特性,程序需要涉及到两次的搬移,一次是从Nand Flash搬移到BootSRAM,搬运的程序量大小是4K,目的是使系统能够启动;第二次搬运是从Nand Flash搬运到系统的SDRAM,如果系统的所有程序量小于4K,这一步可以省略,搬运的程序量大小是系统的所有程序,目的是使程序在SDRAM中运行。第一次搬运是S3C2440通过硬件机制自动实现的,我们无需干预,第二次则需要我们程序员来实现。 Mini2440开发板带有两种FLASH: Nor Flash和Nand Flash。按照开发板的设计目的以及很多实际的应用,系统一般选择从Nand FLASH启动,但厂家为了方便大家学习还是保留了Nor Flash,我们也可以将启动代码烧写至Nor Flash,并从中启动。两种启动方式的启动代码稍有不同,不同点主要在上述的第二次程序拷贝。启动方式可通过拨键开关S2来选择。 3 关于Supervivi 首先了解一下BIOS。BIOS是英文“Basic Input Output System”的缩略语,直译过来后中文名称就是“基本输入输出系统”。其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。 Mini2440开发板采用的 BIOS 是基于三星原来的bootloader 之vivi 改进而来,名为Supervivi,它采用功能菜单的方式,并可以和原来的命令交互模式互相切换。 Supervivi 可以使用JTAG 板(一般借助H-JTAG 软件)直接烧写入Nor Flash 中使用,也可以直接烧入Nand Flash 中运行。当烧入Nor Flash 并从中时,将会出现菜单模式;当烧入Nand Flash 并从中运行时,按下开发板上的任意一个按键,也可以出现菜单模式,否则会启动开发板上预装的操作系统(Linux/WindowsCE)。 Supervivi 的菜单模式主要为烧写系统和调试而用,也可以设置参数和进行分区等,它采用USB 下载的方式,因此搭建烧写环境极为简单,并且下载速度快,使用十分方便。 如果 Supervivi 被烧写入Nor Flash(默认),不仅可以用它来方便的下载更新linux 和WinCE 系统,还可以烧写其他任何支持Nand Flash 启动的操作系统和非操作系统到NandFlash,如uCos2,U-boot,Nboot,2440test 等,然后再选择系统从Nand Flash 启动,这样就可以使用各种各样的系统了。 4 板载JTAG接口与HJTAG连接 H-JTAG USB 仿真器的采用标准的20 针JTAG 接口,板载JTAG接口是采用10针,两者信号的定义如图1和图2所示。 在这里插入图片描述 因此这里面涉及到两个接口连接的问题。在H-JTAG USB 仿真器端,若把有凸切口的一端作为上方,那么引脚的第一行,从右到左排列就是1,3,5….19引脚,另外还可以通过跟H-JTAG端配合的线来看,带有红色花纹的那条线就是1引脚连接的线。 在mini2440板上有一个10针的插槽,若以切口端为上方,那么第一行从右到左排列依次就是1,3,5,7,9引脚。另外在板上还有一个“JTAG2”的箭头,箭头所指就是1引脚。因此连接方法如图3所示。 在这里插入图片描述 图3 板载JTAG接口与H-JTAG端接口的连接 5 烧写Supervivi到nor flash 烧写前准备: (1)连接好H-JTAG和mini开发板。 (2)把S2开关拨到nor flash边,开启电源。 (3)安装好H-JTAG软件,本文安装的是2010-06-01 H 版本。 (4)把FriendlyARM2440.his文件复制到HJTAG安装目录下,该文件由mini2440提供。 (5)确保S3C2440+SST39VF1601.hfc文件在HJTAG安装目录下的HFC Examples下。本文mini2440用到的nor flash是SST39VF1601,所以选用该文件。 (6)从友善之臂网站下载supervivi-1026文件,里面包含两个文件,一个是supervivi-64M,一个是supervivi-128M,等一下我们烧写的是supervivi-64M。supervivi-64M 和 supervivi-128M,分别支持64M/128M Nand Flash的mini2440。supervivi-128M是烧写到128M 的Nand Flash的mini2440的,本文用到的64M的Nand Flash。但是现在要烧写的是nor flash的SST39VF1601,supervivi-64M就可以了满足要求了。 烧写过程: (1)打开H-JTAG,点击Detect target ,得到如图4所示。 (2)在 H-JTAG 的主界面,点Script->Init Script,跳出Init Script 窗口,点该窗口下面的Load 按钮,找到并选择打开刚刚复制的FriendlyARM2440.his 文件,如图5所示。

在这里插入图片描述

(3)设置Flash 型号并烧写BIOS 1)点H-JTAG 主菜单的Flasher-> Start H-Flasher 打开H-Flasher 烧写程序窗口,在窗口菜单中选择 “Load”,出现打开文件选择窗口,选择上面步骤复制H-Flasher_SST39VF1601.hfc。选择后,得到如图6所示。点击左侧导航栏Configuration选项,出现的界面如图7所示,从中可以发现里面的设置是固定的。 2)点 H-Flasher 左侧导航栏的“Programming”,点击Check按钮,出现如图界面如图8所示。 在这里插入图片描述     3)再点 Src File 右侧的浏览按钮,选择所要烧写的文件supervivi,如图9,打开,并在图8中“Dst Addr ”一栏中输入烧写的起始地址“0”,如图8所示。 4)点“Program”按钮开始烧写supervivi。 5)至此,已经把supervivi-64M 烧写入Nor Flash 中。 6 烧写独立的应用程序到nand flash  在《mini2440使用手册》P631中有其中一个叙述,如下:“注意:目前H-JTAG 只能用于烧写Nor Flash,并不能直接烧写Nand Flash,一些开发板厂商为了节省成本,很多都省掉了Nor Flash,因此并不能用本节介绍的步骤快速简单的烧写BIOS。”   但是实践证明,可以烧写独立的应用程序到nand flash。可以配合ADS+AXD+HJTAG联合调试,实现单步调试和全速调试。这个意义很重大,对在裸机上开发或者自定义的操作系统下开发程序非常重要。 执行以下步骤之前,要确保开发板选择从Nor Flash 启动,切记! 接上面的步骤: 1)点H-JTAG 主菜单的Flasher-> Start H-Flasher 打开H-Flasher 烧写程序窗口,在H-Flasher 窗口菜单 中选择“Load”,出现打开文件选择窗口,选择H-JTAG安装路径下的HFC Examples中的S3C2440+K9F1208.hfc,如图10,选择后出现的界面如图11所示。 2) 点 H-Flasher 左侧导航栏的“General”,在“SKIP ID CHECK”打勾。如图12所示。 3)点 H-Flasher 左侧导航栏的“Programming”,点击Check按钮,出现如图界面如图13所示。其设置都是固定的了。找到需要烧写的文件,点击“Program”按钮即可,实现烧写。 4)把HJTAG拔开,关闭板上电源,把开关调到nand flash 启动。开启电源,就可以从nand flash 启动,并执行刚才下载的程序了。

在这里插入图片描述

转载论文:基于mini2440的H-JTAG烧写程序的方法.陈海生



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3